package com.bkgy.modularbx.coil_track_fullproc.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 钢卷分卷全流程导出DTO
 * 用于Excel模板导出数据
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "钢卷分卷全流程导出数据")
public class CoilTrackingExportDTO {
    /**
     * 序号
     */
    @Excel(name = "序号", width = 10, orderNum = "1")
    @Schema(description = "序号")
    private Integer serialNumber;

    /**
     * 产线
     */
    @Excel(name = "产线", width = 15, orderNum = "2")
    @Schema(description = "产线-固定")
    private String productionLine;

    /**
     * 出口卷号
     */
    @Excel(name = "出口卷号", width = 20, orderNum = "3")
    @Schema(description = "出口卷号-固定")
    private String exitCoilId;

    /**
     * 出口重量
     */
    @Excel(name = "出口重量", width = 20, orderNum = "3")
    @Schema(description = "出口重量-固定")
    private BigDecimal exitWeight;

    /**
     * 订单号
     */
    @Excel(name = "订单号", width = 20, orderNum = "4")
    @Schema(description = "订单号")
    private String orderNo;

    /**
     * 热轧卷号
     */
    @Excel(name = "热轧卷号", width = 20, orderNum = "5")
    @Schema(description = "热轧卷号")
    private String hotCoilId;

    /**
     * 热轧卷重量（单位：吨）
     */
    @Excel(name = "热轧卷重量(吨)", width = 15, orderNum = "6")
    @Schema(description = "热轧卷重量(吨)")
    private BigDecimal hotCoilWeight;

    /**
     * 酸轧出口卷号
     */
    @Excel(name = "酸轧出口卷号", width = 20, orderNum = "7")
    @Schema(description = "酸轧出口卷号")
    private String tcm2280Extid;

    /**
     * 酸轧后卷重
     */
    @Excel(name = "酸轧后卷重", width = 15, orderNum = "8")
    @Schema(description = "酸轧后卷重")
    private BigDecimal tcm2280Weight;

    /**
     * 酸轧重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "酸轧重量异常标记", width = 15, orderNum = "9")
    @Schema(description = "酸轧重量异常标记(0-正常 1-超差)")
    private String tcm2280WtFlag;

    /**
     * 酸轧损失重量(吨)
     */
    @Excel(name = "酸轧损失重量(吨)", width = 15, orderNum = "9.1")
    @Schema(description = "酸轧损失重量(吨)")
    private BigDecimal tcm2280Loss;

    /**
     * 酸轧2280成材率
     */
    @Excel(name = "酸轧成材率", width = 15,orderNum = "9.3")
    @Schema(description = "酸轧2280成材率")
    private BigDecimal tcm2280Yield;

    /**
     * 连退2150出口卷号
     */
    @Excel(name = "连退2150出口卷号", width = 20, orderNum = "10")
    @Schema(description = "连退2150出口卷号")
    private String cal2150Extid;

    /**
     * 连退2150工序后卷重
     */
    @Excel(name = "连退2150工序后卷重", width = 15, orderNum = "11")
    @Schema(description = "连退2150工序后卷重")
    private BigDecimal cal2150Weight;

    /**
     * 连退2150重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "连退2150重量异常标记", width = 15, orderNum = "12")
    @Schema(description = "连退2150重量异常标记(0-正常 1-超差)")
    private String cal2150WtFlag;

    /**
     * 连退2150损失重量(吨)
     */
    @Excel(name = "连退2150损失重量(吨)", width = 15, orderNum = "12.1")
    @Schema(description = "连退2150损失重量(吨)")
    private BigDecimal cal2150Loss;

    /**
     * 连退2150成材率
     */
    @Excel(name = "连退2150成材率", width = 15,orderNum = "12.3")
    @Schema(description = "连退2150成材率")
    private BigDecimal cal2150Yield;

    /**
     * 连退1630出口卷号
     */
    @Excel(name = "连退1630出口卷号", width = 20, orderNum = "13")
    @Schema(description = "连退1630出口卷号")
    private String cal1630Extid;

    /**
     * 连退1630工序后卷重
     */
    @Excel(name = "连退1630工序后卷重", width = 15, orderNum = "14")
    @Schema(description = "连退1630工序后卷重")
    private BigDecimal cal1630Weight;

    /**
     * 连退1630重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "连退1630重量异常标记", width = 15, orderNum = "15")
    @Schema(description = "连退1630重量异常标记(0-正常 1-超差)")
    private String cal1630WtFlag;

    /**
     * 连退1630损失重量(吨)
     */
    @Excel(name = "连退1630损失重量(吨)", width = 15, orderNum = "15.1")
    @Schema(description = "连退1630损失重量(吨)")
    private BigDecimal cal1630Loss;

    /**
     * 连退1630成材率
     */
    @Excel(name = "连退1630成材率", width = 15,orderNum = "67")
    @Schema(description = "连退1630成材率")
    private BigDecimal cal1630Yield;

    /**
     * 镀锌出口卷号
     */
    @Excel(name = "镀锌出口卷号", width = 20, orderNum = "16")
    @Schema(description = "镀锌出口卷号")
    private String cgl1870Extid;

    /**
     * 镀锌后卷重
     */
    @Excel(name = "镀锌后卷重", width = 15, orderNum = "17")
    @Schema(description = "镀锌后卷重")
    private BigDecimal cgl1870Weight;

    /**
     * 镀锌重量异常标记（0-正常 1-超差）
     */
    @Excel(name = "镀锌重量异常标记", width = 15, orderNum = "18")
    @Schema(description = "镀锌重量异常标记(0-正常 1-超差)")
    private String cgl1870WtFlag;

    /**
     * 镀锌损失重量(吨)
     */
    @Excel(name = "镀锌损失重量(吨)", width = 15, orderNum = "18.1")
    @Schema(description = "镀锌损失重量(吨)")
    private BigDecimal cgl1870Loss;

    /**
     * 镀锌1870成材率
     */
    @Excel(name = "镀锌成材率", width = 15,orderNum = "82")
    @Schema(description = "镀锌1870成材率")
    private BigDecimal cgl1870Yield;

    /**
     * 重卷分切卷号（合并一次、二次、三次重卷）
     */
    @Excel(name = "重卷分切卷号", width = 20, orderNum = "19")
    @Schema(description = "重卷分切卷号（合并一次、二次、三次重卷）")
    private String rewindExtid;

    /**
     * 重卷分切重量（合并一次、二次、三次分切重量）
     */
    @Excel(name = "重卷分切重量", width = 15, orderNum = "20")
    @Schema(description = "重卷分切重量（合并一次、二次、三次分切重量）")
    private BigDecimal rewindWeight;

    /**
     * 重卷分切重量异常标记（合并一次、二次、三次重卷异常标记）
     */
    @Excel(name = "重卷分切重量异常标记", width = 15, orderNum = "21")
    @Schema(description = "重卷分切重量异常标记(0-正常 1-超差)")
    private String rewindFlag;

    /**
     * 重卷损失重量(吨)
     */
    @Excel(name = "重卷损失重量(吨)", width = 15, orderNum = "21.1")
    @Schema(description = "重卷损失重量(吨)")
    private BigDecimal rewindLoss;

    /**
     * 重卷线成材率
     */
    @Excel(name = "重卷1线成材率", width = 15,orderNum = "97")
    @Schema(description = "重卷1线成材率")
    private BigDecimal rewindYield;

    /**
     * 订单厚度
     */
    @Excel(name = "订单厚度", width = 15, orderNum = "23")
    @Schema(description = "订单厚度")
    private BigDecimal orderThick;

    /**
     * 订单宽度
     */
    @Excel(name = "订单宽度", width = 15, orderNum = "24")
    @Schema(description = "订单宽度")
    private BigDecimal orderWidth;

    /**
     * 钢种代码
     */
    @Excel(name = "钢种代码", width = 15, orderNum = "25")
    @Schema(description = "钢种代码")
    private String steelgrade;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss", orderNum = "25")
    @Schema(description = "记录创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 订单最小卷重(吨)
     */
    @Excel(name = "订单最小卷重(吨)", width = 15,orderNum = "22")
    @Schema(description = "订单最小卷重(吨)")
    private BigDecimal orderMinWt;

    /**
     * 订单最大卷重(吨)
     */
    @Excel(name = "订单最大卷重(吨)", width = 15,orderNum = "23")
    @Schema(description = "订单最大卷重(吨)")
    private BigDecimal orderMaxWt;
} 